﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
namespace Repositories.Interfaces
{
	public interface IComboRepository : IBaseRepository<Combo>
	{
        /// <summary>
        /// Creates the Combo.
        /// </summary>
        /// <param name="item">The item.</param>
        void CreateCombo(Combo item);

        /// <summary>
        /// Queries the Combo.
        /// </summary>
        /// <param name="predicate">The predicate.</param>
        /// <returns>Query results.</returns>
        IQueryable<Combo> QueryCombo(Expression<Func<Combo, bool>> predicate);

        /// <summary>
        /// Finds the by ID.
        /// </summary>
        /// <param name="id">The id.</param>
        /// <returns>The Combo with input ID.</returns>
        Combo FindById(int id);

        /// <summary>
        /// Gets all Combo.
        /// </summary>
        /// <returns>all Combo.</returns>
        List<Combo> GetAllCombo();

        /// <summary>
        /// Get All Category For DropDownList
        /// </summary>

	    Combo GetComboByOrder(int order);
    
      

        /// <summary>
        /// Edits the Combo.
        /// </summary>
        /// <param name="item">The item.</param>
        void EditCombo(Combo item);


        /// <summary>
        /// Deletes the Combo.
        /// </summary>
        /// <param name="item">The item.</param>
        void DeleteCombo(Combo item);

        /// <summary>
        /// Applies the changes to database.
        /// </summary>
        void ApplyTheChanges();

        /// <summary>
        /// Accepts all changes.
        /// </summary>
        void AcceptAllChanges();

        /// <summary>
        /// Refreshes this instance.
        /// </summary>
        void Refresh();
	}
}
